home *** CD-ROM | disk | FTP | other *** search
- ;NBLOGO.ASM
- ; By Drunken Butterfly of NeuroBashers
- ; 10/23/1993
- ;--------------------------------------------------------------------
-
- .286
- IDEAL
- DOSSEG
- MODEL small
- STACK 30
- DATASEG
- ;--------------------------------------------------------------------
-
- LABEL PAL BYTE
- INCLUDE 'PAL.INC'
- LABEL PICTURE BYTE
- INCLUDE 'pic2.inc'
-
- ;--------------------------------------------------------------------
-
- CODESEG
-
- ASSUME ds:DGROUP,ss:Stack,es:NOTHING
-
- ;--------------------------------------------------------------------
-
- PROC InitScreen ; switch to 320x200x256c
-
- push ax cx dx es di
-
- mov ax,0013h
- int 10h ; switch to 320x200x256c (non-tweaked)
-
- mov ax,0a000h
- mov es,ax
- xor di,di
- xor ax,ax
- mov cx,08000h
- rep stosw ; clear display memory
-
- pop di es dx cx ax
-
- ret
- ENDP InitScreen
-
- ;--------------------------------------------------------------------
-
- PROC BlackPal
- pusha
- mov dx,3c8h
- mov ax,0
- cli
- out dx,al
- inc dx
- mov al,00h
- mov cx,768
- @@Looper:
- out dx,al
- loop @@Looper
- popa
- sti
-
- ret
- ENDP
-
- ;--------------------------------------------------------------------
-
- PROC LoadPal
- pusha
- mov dx,3c8h
- mov ax,0
- cli
- out dx,al
- inc dx
- mov ax, seg pal
- mov es,ax
- mov si,offset pal
- mov cx,768
- rep outsb
- popa
- sti
-
- ret
- ENDP
-
- ;--------------------------------------------------------------------
-
- PROC DisplayPic ; displays 320x200x256c picture
- pusha
- mov ax,seg picture
- mov si,offset picture
- mov es,ax
- mov di,0
- mov ax,0a000h
- mov es,ax
- cld
- mov cx,4540
- @@First14:
- movsb
- loop @@First14
-
-
- mov di,4540
- mov cx,186
- @@FlowLoop:
- push cx si di
- @@FlowLoop2:
- push si
- mov bx,0
- @@FlowLoop3:
- movsb
- inc bx
- cmp bx,320
- jne @@FlowLoop3
- pop si
- loop @@FlowLoop2
-
- pop di si cx
- add di,320
- add si,320
- loop @@FlowLoop
-
- popa
- ret
-
- ENDP DisplayPic
-
- ;--------------------------------------------------------------------
-
- BEGIN:
-
- mov ax,@data
- mov ds,ax
-
- call InitScreen ; Initialize 320x200x256c
- call LoadPal ; Loads Palette
- call DisplayPic ; Display the picture
-
- mov al,00h ; Get character from buffer
- int 16h
-
- @@CheckForKeys: ; Check for keypress
- mov ah,01h
- int 16h
- jz @@CheckForKeys
- xor ah,ah
- int 16h
- @@NoKeyWaiting:
- mov ax,0003h ; Reset screen to text mode
- int 10h
-
- mov ah,04ch ; Finish
- mov al,[0]
- int 21h
-
- END BEGIN
-